From: Ian Campbell Date: Thu, 2 Dec 2010 12:33:01 +0000 (+0000) Subject: libxc: NetBSD: implement xc_evtchn_bind_unbound_port. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~11149 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=77fcd869a7beb55857198b8d6cbffe63b33cac20;p=xen.git libxc: NetBSD: implement xc_evtchn_bind_unbound_port. Doesn't actually appear to be used anywhere but is defined for other OSes. The NetBSD evtchn.h contains comments "Return allocated port" for several ioctls which currently return the allocated port as a member of the argument structure and not as the ioctl return value (I think this is a cut and paste error). Signed-off-by: Ian Campbell Signed-off-by: Stefano Stabellini Acked-by: Christoph Egger committer: Stefano Stabellini --- diff --git a/tools/include/xen-sys/NetBSD/evtchn.h b/tools/include/xen-sys/NetBSD/evtchn.h index dc30e815dc..2d8a1f9164 100644 --- a/tools/include/xen-sys/NetBSD/evtchn.h +++ b/tools/include/xen-sys/NetBSD/evtchn.h @@ -33,7 +33,6 @@ /* * Bind a fresh port to VIRQ @virq. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_VIRQ \ _IOWR('E', 4, struct ioctl_evtchn_bind_virq) @@ -44,7 +43,6 @@ struct ioctl_evtchn_bind_virq { /* * Bind a fresh port to remote <@remote_domain, @remote_port>. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_INTERDOMAIN \ _IOWR('E', 5, struct ioctl_evtchn_bind_interdomain) @@ -55,7 +53,6 @@ struct ioctl_evtchn_bind_interdomain { /* * Allocate a fresh port for binding to @remote_domain. - * Return allocated port. */ #define IOCTL_EVTCHN_BIND_UNBOUND_PORT \ _IOWR('E', 6, struct ioctl_evtchn_bind_unbound_port) diff --git a/tools/libxc/xc_netbsd.c b/tools/libxc/xc_netbsd.c index 5958faaf6b..47f84853ed 100644 --- a/tools/libxc/xc_netbsd.c +++ b/tools/libxc/xc_netbsd.c @@ -205,6 +205,21 @@ int xc_evtchn_notify(int xce_handle, evtchn_port_t port) return ioctl(xce_handle, IOCTL_EVTCHN_NOTIFY, ¬ify); } +evtchn_port_or_error_t +xc_evtchn_bind_unbound_port(int xce_handle, int domid) +{ + struct ioctl_evtchn_bind_unbound_port bind; + int ret; + + bind.remote_domain = domid; + + ret = ioctl(xce_handle, IOCTL_EVTCHN_BIND_UNBOUND_PORT, &bind); + if (ret == 0) + return bind.port; + else + return -1; +} + evtchn_port_or_error_t xc_evtchn_bind_interdomain(int xce_handle, int domid, evtchn_port_t remote_port)